Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Delphi - [lazarus] nascondere applicazione da barra
Forum - Delphi - [lazarus] nascondere applicazione da barra

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
carmelo (Normal User)
Pro


Messaggi: 100
Iscritto: 15/06/2007

Segnala al moderatore
Postato alle 20:15
Venerdì, 07/12/2012
ciao a tutti,
vorrei far apparire l'applicazione solo nella trybar e non nella barra delle applicazioni.
In delphi utilizzavo
Codice sorgente - presumibilmente Plain Text

  1. ShowWindow(Application.Handle, SW_HIDE);


oltre al componente tryicon, ma "handle" non mi funziona con lazarus...
Avete dei suggerimenti?
Grazie tante
Carmelo

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 22:36
Venerdì, 07/12/2012
se sei nel mainform elimina application e usa solo Handle


Ibis redibis non morieris in bello
PM Quote
Avatar
carmelo (Normal User)
Pro


Messaggi: 100
Iscritto: 15/06/2007

Segnala al moderatore
Postato alle 22:51
Venerdì, 07/12/2012
Testo quotato

Postato originariamente da Goblin:

se sei nel mainform elimina application e usa solo Handle



cosi facendo mi nasconde tutto ma rimane l'icona nella barra delle applicazioni.
Fa proprio l'inverso che vorrei...

PM Quote
Avatar
giacomopaty (Normal User)
Rookie


Messaggi: 53
Iscritto: 17/10/2011

Segnala al moderatore
Postato alle 23:21
Venerdì, 07/12/2012
Testo quotato

Postato originariamente da carmelo:

ciao a tutti,
vorrei far apparire l'applicazione solo nella trybar e non nella barra delle applicazioni.
In delphi utilizzavo
Codice sorgente - presumibilmente Plain Text

  1. ShowWindow(Application.Handle, SW_HIDE);


oltre al componente tryicon, ma "handle" non mi funziona con lazarus...
Avete dei suggerimenti?
Grazie tante
Carmelo



http://delphi.about.com/od/delphitips2008/qt/hide_taskbutt ...

Se vuoi semplificarti la vita, passa a Delphi di Embarcadero, CodeGear o Borland.

Ultima modifica effettuata da giacomopaty il 07/12/2012 alle 23:22
PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 23:44
Venerdì, 07/12/2012
mmm ho fatto una prova al volo ...
nel file di progetto devi settare la proprietà dell'application MainFormOnTaskbar a true.

io ho provato a settarlo nel create del form main, ma credo che il posto giusto sia nel file .lpr l'analogo del .dpr di delphi

la riga da aggiungere é:
   Application.MainFormOnTaskbar := true;

e ovviamente la property visible del componente tryicon deve essere a True.

ho fatto una prova al volo e sembra funzionare


Ibis redibis non morieris in bello
PM Quote
Avatar
carmelo (Normal User)
Pro


Messaggi: 100
Iscritto: 15/06/2007

Segnala al moderatore
Postato alle 13:25
Domenica, 09/12/2012
Testo quotato

Postato originariamente da giacomopaty:
http://delphi.about.com/od/delphitips2008/qt/hide_taskbutt ...
Se vuoi semplificarti la vita, passa a Delphi di Embarcadero, CodeGear o Borland.



Grazie per i suggermenti ma, programmo per hobby e sono un sostenitore del opensource ;-)

Testo quotato

Postato originariamente da Goblin:
....ho fatto una prova al volo e sembra funzionare



Dopo averle provate tutte, a me invece continua a non funzionare...
se posto un po di codice risolviamo?
tanks

PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 1:55
Lunedì, 10/12/2012
yes posta il codice, male che vada qualchuno più bravo di me ti risolve il problema


Ibis redibis non morieris in bello
PM Quote
Avatar
carmelo (Normal User)
Pro


Messaggi: 100
Iscritto: 15/06/2007

Segnala al moderatore
Postato alle 20:14
Lunedì, 10/12/2012
Codice sorgente - presumibilmente Delphi

  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  9.   Dialogs, StdCtrls, ExtCtrls, Buttons, Menus;
  10. type
  11.  
  12.   { TForm1 }
  13.  
  14.   TForm1 = class(TForm)
  15.  
  16.     Label1: TLabel;
  17.     Label2: TLabel;
  18.     Label3: TLabel;
  19.     Label4: TLabel;
  20.     Memo1: TMemo;
  21.     MenuItem1: TMenuItem;
  22.     MenuItem2: TMenuItem;
  23.     MenuItem4: TMenuItem;
  24.     PopupMenu1: TPopupMenu;
  25.     Timer1: TTimer;
  26.     TrayIcon1: TTrayIcon;
  27.  
  28.  
  29.  
  30.  
  31.  
  32.     procedure FormCreate(Sender: TObject);
  33.     procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
  34.       Shift: TShiftState; X, Y: Integer);
  35.     procedure Label2Click(Sender: TObject);
  36.     procedure Label3Click(Sender: TObject);
  37.     procedure Memo1Change(Sender: TObject);
  38.     procedure MenuItem1Click(Sender: TObject);
  39.     procedure MenuItem2Click(Sender: TObject);
  40.     procedure MenuItem4Click(Sender: TObject);
  41.     procedure Timer1Timer(Sender: TObject);
  42.  
  43.  
  44.   private
  45.     { private declarations }
  46.   public
  47.     { public declarations }
  48.   end;
  49.  
  50. var
  51.   Form1: TForm1;
  52.  
  53. implementation
  54.  
  55. {$R *.lfm}
  56.  
  57. { TForm1 }
  58.  
  59. procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  60.   Shift: TShiftState; X, Y: Integer);
  61. begin
  62.   ReleaseCapture;
  63.    SendMessage(Form1.Handle, WM_SYSCOMMAND, $F012, 0);
  64. end;
  65.  
  66. procedure TForm1.FormCreate(Sender: TObject);
  67. begin
  68.   memo1.Lines.LoadFromFile('c:/C_memo_note.txt');
  69.   form1.Top:= 10;
  70.   form1.Left:=screen.Width - form1.Width - 10;
  71.  
  72. end;
  73.  
  74. procedure TForm1.Label2Click(Sender: TObject);
  75. begin
  76.   form1.Hide;
  77. end;
  78.  
  79. procedure TForm1.Label3Click(Sender: TObject);
  80. begin
  81.   close;
  82. end;
  83.  
  84. procedure TForm1.Memo1Change(Sender: TObject);
  85. begin
  86.      Timer1.Enabled := false;
  87.        Timer1.Enabled := True;
  88. end;
  89.  
  90. procedure TForm1.MenuItem1Click(Sender: TObject);
  91. begin
  92.   form1.show;
  93. end;
  94.  
  95. procedure TForm1.MenuItem2Click(Sender: TObject);
  96. begin
  97.   Form1.Hide;
  98. end;
  99.  
  100.  
  101. procedure TForm1.MenuItem4Click(Sender: TObject);
  102. begin
  103.   close;
  104. end;
  105.  
  106. procedure TForm1.Timer1Timer(Sender: TObject);
  107. begin
  108. timer1.Enabled:=false;
  109. memo1.Lines.SaveToFile('c:\C_memo_note.txt');
  110. end;
  111.  
  112. end.



Manca il codice che mi avete consigliato di mettere proprio perche non funziona quindi l'ho omesso...
grazie ancora

Ultima modifica effettuata da carmelo il 10/12/2012 alle 20:15
PM Quote
Avatar
Goblin (Member)
Expert


Messaggi: 375
Iscritto: 02/02/2011

Segnala al moderatore
Postato alle 23:09
Lunedì, 10/12/2012
Allora io ho fatto così:

Tenendo come base il tuo codice

1) devi caricare l'icona del programma nel componente Trayicon
2) collegare il menuitem al componente trayicon
3) di seguito la modifica al codice

Codice sorgente - presumibilmente Delphi

  1. procedure TForm1.FormCreate(Sender: TObject);
  2. begin
  3.   Application.MainFormOnTaskbar := true;  // riga aggiunta
  4.   memo1.Lines.LoadFromFile('c:\temp\install.bat');
  5.   form1.Top:= 10;
  6.   form1.Left:=screen.Width - form1.Width - 10;
  7. end;  
  8.  
  9. procedure TForm1.Label2Click(Sender: TObject);
  10. begin
  11.   ShowWindow(Handle, SW_HIDE);
  12.   TrayIcon1.visible := True;
  13. end;
  14.  
  15. procedure TForm1.MenuItem1Click(Sender: TObject);
  16. begin
  17.   ShowWindow(Handle, SW_SHOW);  
  18.   TrayIcon1.visible := False;
  19. end;
  20.  
  21. procedure TForm1.MenuItem2Click(Sender: TObject);
  22. begin
  23.   ShowWindow(Handle, SW_HIDE);
  24.   TrayIcon1.visible := True;
  25. end;




Ibis redibis non morieris in bello
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo